#include<stdio.h>

#define size 3
#define Arraysize(a)sizeof(a)/ sizeof(a[0])

//数组名在作为函数参数传递时变现为指针：地址是数组首元素的地址
void PrintArray(int a[size])
{
for(int i=0;i<size; i++)
    {
        printf("%d"a[i]);
    }
    printf("\n");
}



int main()

{
    int a[Size] = {1,2,3};

    //指针的数据类型代表它的步长

for(int i=0;i<Size;i++)
{
    int a[size]={1,2,3,4};
    printf("%d",*(a+i));//通过指针访问数组元素
    //a[i]==*(a+i)
}
 printf("\n");


    //printArray(a);



    // int a[3];
    // printf("%ld\n",sizeof(a));
    // //数组单个元素
    // //数组下标：代表数组中的元素符号，从0开始
    // a[0] = 1;
    // a[2] = 2;
    // a[3] = 3;
    //访问越界：数组访问的下标超过了最大限度

    //数组通过下标循环访问
    // for (int i=0;i<3;i++)
    // {
    //     printf("%d",a[i]);

    // }
    // printf("\n");


//静态数组：容量不能变化的数组
//数组的地址是连续的
// int a[3]={1,2,3};

// //数组的容量：数组的总大小/单个元素的大小
// for (int i=0;i<ArraySsize(a);i++)
//     {
//          printf("%d ",a[i]);
//     }
//     printf("\n");



int a[size]= {1,2,3};
printf("%p %p %p\n",a,&a,&a[0]);
printf("%p %p %p\n",a+1,&a+1,&a[0]+1);
    return 0;
}

